#include<stdio.h>
#include<unistd.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<sys/types.h>
//int dup2(int oldfd,int newfd) ==>最后把oldfd和newfd对应的文件都变成oldfd对应的文件
//本质是: fd_array[newfd] = fd_array[oldfd]  返回值：newfd
int main()
{
    //输出重定向    dup2(fd,1);
    /*
    umask(0);
    int fd = open("./file.txt",O_WRONLY | O_CREAT | O_TRUNC,0644);
    dup2(fd,1);
    printf("hello printf\n");
    */

    //追加重定向    dup2(fd,1);
    /*
    umask(0);
    int fd = open("./file.txt",O_WRONLY | O_CREAT | O_APPEND,0644);
    dup2(fd,1);
    printf("hello printf\n");
    */

    //输入重定向    dup2(fd,0);
    int fd = open("./file.txt",O_RDONLY);
    dup2(fd,0);
    char line[1024] = {0};
    while(fgets(line,sizeof(line)-1,stdin))
    {
        printf("line:%s",line);
        line[0] = 0;
    }
    close(fd);//最好不要忘了关闭文件描述符
    return 0;
}